.popup {
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2001;
}

.popup-right {
    position: absolute;
    right: 0;
    min-width: 200px;
    height: 100%;
    background-color: #fff;
    opacity: 0;
    z-index: 1;
    padding: 20px;
} 

.overlay {
    width: 100%;
    height: 100%;
    opacity: 0;
    background-color: rgba(0, 0, 0, .5);
}

.show .popup-right {
    animation: show 300ms ease-in-out;
    animation-fill-mode: forwards;
}

.show .overlay {
    animation: show 300ms ease-in-out;
    animation-fill-mode: forwards;
}

.popup.hide {
    pointer-events: none;
}

.hide .popup-right {
    opacity: 1;
    animation: hide 300ms ease-in-out;
    animation-fill-mode: forwards;
}

.hide .overlay {
    opacity: 1;
    animation: hide 300ms ease-in-out;
    animation-fill-mode: forwards;
}

.popup-close {
    position: absolute;
    top: 25px;
    right: 25px;
    width: 25px;
    height: 25px;
}

.popup-close svg {
    width: 100%;
    height: 100%;
}

@keyframes show {
    0% {
        opacity: 0;
    }
    
    100% {
        opacity: 1;
    }
}

@keyframes hide {
    0% {
        opacity: 1;
    }
    
    100% {
        opacity: 0;
    }
}